#include <stdio.h>
#include <limits.h>
#include <stdbool.h>

#define mod (1000000007)
int countGoodNumbers(long long n) {
    int nt[64]={
20,400,160000,599999825,480032116,778421646,719767538,132124309,906529657,267965558,771612591,422031379,613868260,997587941,62347630,939406318,120927556,697768825,733711322,262661584,226451307,83046891,56488379,939711089,608167453,299433673,898647268,630895482,421808582,603393378,65665922,281925993,972660201,986885388,230311210,80361329,153440640,838801397,684037163,89740710,974930342,98812809,154122684,557087249,825964601,329566582,210863807,791288441,477248737,373730684,185385495,515820558,192935442,519166776,415495203,507557375,113589216,901177093,263089620,667231371,330155748,174419785,186490398,302747728
    };
    bool odd= n%2;
    unsigned long long a=n>>1,tag=1;
    long long ret=1;
    if( odd )
        ret=5;
    for( int i=0; i<64; i++ ){
        if( (a & tag) != 0 ){
            ret=(ret*nt[i])%mod;
        }
        tag=tag<<1;
    }
    return ret;
}


int main(){
    /*
    long nt[64];
    long e=1e9+7;
    nt[0]=20;
    for(int i=1;i<64;i++){
        nt[i]=(nt[i-1]*nt[i-1])%(e);
    }
    for(int i=0;i<64;i++){
        printf("%ld\n",nt[i]);
    }
    */
    printf("%d\n",countGoodNumbers(50));
    return 0;
}
